#define GODALMING 0
#define SEWARD 1
#define HELSING 2
#define MINA 3
#define DRACULA 4
#define NUM_HUNTERS 4
#define YET_TO_MOVE (-1)

#define DRACULA_CITY 71
#define DRACULA_SEA  72
#define DRACULA_HIDE 73
#define DRACULA_D1   74
#define DRACULA_D2   75
#define DRACULA_D3   76
#define DRACULA_D4   77
#define DRACULA_D5   78
#define DRACULA_TELE 79

#define SEA_BEGIN 61
#define SEA_END 70

#ifndef MESSAGE_SIZE
#include "game.h"
#endif

typedef struct move *Move;
typedef struct draculaMove *DraculaMove;
typedef struct hunterView *HunterView;
typedef struct connection *Connection;

struct move{
    int playerNum;
    int location;
    int health; 
    int rested;
    int stillInGame;
    char* message;
};

struct connection{
    int road;
    int rail;
    int sea;
};

HunterView newHunterView (char *pastPlays, playerMessage messages[]);

void movesSinceTurn (HunterView hv, Move* moves);

int whoAmI (HunterView hv);

int turnNumber (HunterView hv);

void disposeHunterView (HunterView toBeDeleted);

void giveGraph (HunterView hv, Connection** graph);

void getMoveCode (char *move, int location);

int locationCode(char *str);

int numDraculaMoves (HunterView hv);

int draculaHealth (HunterView hv);

void draculaMoves (HunterView hv, int *moves);


